home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 009 / softg203.u20 < prev    next >
Text File  |  1987-03-18  |  15KB  |  434 lines

  1. SOFTG203.UNP        Breaking Softguard version 2.03 & 2.03A
  2. version 18                        by The Lone Victor
  3.  
  4.      United States copyright law SPECIFICALLY grants you the right to
  5. make copies of programs you buy on magnetic media.  Programs are copy
  6. protected IN VIOLATION OF YOUR RIGHTS UNDER U.S. LAW.
  7.  
  8.      Programs that are protected by the Softguard system are distinguished
  9. by the files CML0203.HCL and VDF0203.VDW which are hidden in the root
  10. directory when you install the program on your fixed disk.  The 0203
  11. part of the file names is the Softguard version (2.03) while CML stands
  12. for Common Loader and VDF is the Volume Descriptor File.  The extensions
  13. HCL and VDW stand for Hard-disk Common Loader and Verify Descriptor Working
  14. copy.  In addition, there will be a hidden root file with a .EXE or .LOD
  15. or some other extension.  This is the REAL program, which has been
  16. encrypted and hidden.
  17.  
  18.      The program <PRODUCT>.COM, in the product directory is the Softguard
  19. miniloader.  All it does is call the Common Loader.  For example, when you
  20. run CLIPPER, the program CLIPPER.COM loads CML0203.HCL high in memory and
  21. runs it.  CML decrypts itself and reads VDF0203.VDW.  The VDF file contains
  22. some code and data from the fixed disk FAT at the time of installation.  By
  23. comparing the information in the VDF file with the current FAT, CML can tell
  24. if the CML, VDF, and CLIPPER.L23 files are in the same place on the disk
  25. where they were installed.  If they have moved, say from a backup & restore,
  26. then CLIPPER will not run.
  27.  
  28.      This text file is designed to let you unprotect ANY of the programs
  29. using the Softguard 2.03 system.  We will use CLIPPER as an example,
  30. but values for other programs will be included in a table.  This text will
  31. not unprotect any programs using Softguard 2.00.  To unprotect Softguard
  32. 2.00, see the file SOFTG200.  Versions 1.00 of dBase III and Framework
  33. used ProLock.  To unprotect Prolock disks read the file PROLOCK.UNP,
  34. also by yours truly.
  35.  
  36.      This table is an experiment designed to keep down the number of
  37. files uploaded to BBS's.  When I started it, this text file was named
  38. SOFTG203.UN1.  Whenever you add a product to the table (including your
  39. "name" if desired) increment the file name by one and upload it to your
  40. local BBS.  Don't worry about the fact that others will be doing the same.
  41. Higher versions of SOFTG203.UNx will not INSURE that they contain all the
  42. tabulated products, but will be MORE LIKELY to contain them all.
  43. Eventually we'll get them all collected.  (Could this be a new type of
  44. electronic chain letter?)
  45.  
  46.      If you find a new program to add to the table, just enter the name of
  47. the encrypted, hidden file in the root directory, and it's size, converted
  48. to HEX.  Try it out before you upload it to your BBS.
  49.  
  50.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  51. routine, please leave them on the Atlanta PCUG BBS (404) 433-0062.
  52.  
  53.                       The Lone Victor - 7/14/85
  54.  
  55.  
  56.  
  57.         TABLE OF VALUES FOR VARIOUS PROTECTED PROGRAMS
  58.  
  59.           FILE      FINAL
  60. PRODUCT  VERSION  NAME       EXT    SIZE:  BX=  CX=        CONTRIBUTOR
  61. ------------------------------------------------------------------------
  62.  
  63. Clipper     1.00  CLIPPER  EXE    BX = 1    CX = 9800  The Lone Victor 7/14/85
  64. Spotlight   1.1   SL       EXE    BX = 0    CX = 6600  HARD DISK USER  7/25/85
  65. dBASE III Developer's Release
  66.           DBASE    EXE    BX = 1    CX = C000  Vanishing/|\Point 10/85
  67. dBCODE        1.62  DBC       COM    BX = 0    CX = 5A00  Vanishing/|\Point 10/85
  68. dBRUN          DBRUN    COM    BX = 1    CX = AC00  <<BOLTAR>>      11/01/85
  69.  
  70.  
  71.  
  72.  
  73.     USE THE SECOND UNPROTECT METHOD FOR THE FOLLOWING PROGRAMS
  74.  
  75.           FILE      FINAL
  76. PRODUCT  VERSION  NAME       EXT    SIZE:  BX=  CX=        CONTRIBUTOR
  77. ---------------------------------------------------------------------------
  78.  
  79. Clipper     S85   CLIPPER  EXE    BX = 1    CX = 9800  Hate Protection  9/23/85
  80. Doubledos   2.1R  DOUBLEDO EXE    BX = 0    CX = 4800  Godfather       10/02/85
  81. Sprdsht Auditor 2.00   AU  EXE    BX = 2    CX = 9400  The Lone Victor 10/31/85
  82. Framework II      FW       EXE    BX = 3    CX = 7600  <<BOLTAR>> & Co.11/23/85
  83. Disk Optimizer      OPTIMIZE COM    BX = 0    CX = 4100  CODEBUSTER       12/05/85
  84. Doubledos   2.1T  DOUBLEDO EXE    BX = 0    CX = 4600  <<BOLTAR>>       12/28/85
  85. Disk Optimizer
  86.  for Version 1.2  OPTIMIZE EXE    BX = 0    CX = 4600  <<BOLTAR>> & Co.12/28/85
  87. Direc-Tree 3.01   DTREE    EXE  BX = 0  CX = DA00  DKS-USA Inc.     3/26/86
  88. Reflection3 1.01  R3       EXE  BX = 1  CX = D200  Run-em           4/30/86
  89. Reflection3 1.30  R3       EXE  BX = 1  CX = 7600  Run-em           4/30/86
  90. Chuckle Pops 1.0  CHUCKLE  EXE  BX = 0  CX = 8D00  Captain Kirk     5/29/86
  91. Peachtree - Back to Basics Accounting System - Version 1.02: 
  92. General Ledger    GLBTB    EXE  BX = 0  CX = 8200
  93. Accts Receivable  ARBTB    EXE  BX = 0  CX = 8A00
  94. Accts Payable     APBTB    EXE  BX = 0  CX = 8C00 << JUST ME >>     5/12/86
  95. ---------------------------------------------------------------------------
  96.  
  97.        USE THE THIRD UNPPROTECT METHOD FOR SOFTGUARD 2.03A
  98.  
  99.           FILE      FINAL
  100. PRODUCT  VERSION  NAME       EXT    SIZE:  BX=  CX=        CONTRIBUTOR
  101. ------------------------------------------------------------------------
  102.  
  103. 123        2.00  123       EXE    BX = 0    CX = 1C00  The Lone Victor 11/04/85
  104. PARADOX     1.00  PARADOX  EXE    BX = 0    CX = 8C30  The Blot       11/12/85
  105.  
  106.  
  107.  
  108.     The following instructions show you how to bypass the SoftGuard copy
  109. protection scheme using CLIPPER version 1.00 as an example.  To use it
  110. with other products, simply substitute the values in the table above for
  111. the values given below.  The only things that change are the file name,
  112. and the size that goes in the BX:CX register pair.  You can obtain the file
  113. size by loading the encrypted file (e.g. CLIPPER.L23) with DEBUG and doing
  114. the Register command.  The file size is in the BX:CX register pair.
  115.  
  116.  
  117.  
  118.             -- INSTRUCTIONS --
  119.  
  120.      First, using your valid, original CLIPPER diskette, install it on a
  121. fixed disk.  You cannot use this text to unprotect the floppy directly!
  122. Softguard hides three files in your fixed disk root directory: CML0203.HCL,
  123. VDF0203.VDW, and CLIPPER.L23.  It also copies CLIPPER.COM into your chosen
  124. CLIPPER directory.  CLIPPER L23 is the real CLIPPER program, encrypted.  The
  125. extension of this file does not matter.  It is really an encrypted .EXE file.
  126.  
  127.      Second, un-hide the three files in the root directory.  You can do
  128. this with the programs ALTER.COM or FM.COM found on any BBS.
  129.  
  130.      Make copies of the three files, and of CLIPPER.COM, into some other
  131. directory.
  132.  
  133.      Hide the three root files again using ALTER or FM.
  134.  
  135.      Following the CLIPPER instructions, UNINSTALL CLIPPER.  You can now
  136. put away your original CLIPPER diskette.  We are done with it.
  137.  
  138.      Now copy your four saved files back into the root directory and hide
  139. the CML0203.HCL, VDF0203.VDW, and CLIPPER.L23 files using ALTER or FM.
  140.  
  141.      We can now run CLIPPER.COM using DEBUG, trace just up to the point
  142. where it has decrypted CLIPPER.EXE, then write that file out.
  143.  
  144.       ****    USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  145.      ****  E.G. USE FW.COM INSTEAD OF CLIPPER.COM FOR FRAMEWORK  ****
  146.  
  147. debug CLIPPER.com        ; name of file that runs the product
  148. r <CR>                ; dump debug's registers
  149.  
  150.       ****    WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  151.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  152.  
  153. g 4D7                ; now we can trace CML
  154. t
  155. g 1B5
  156. t
  157. e cs:A2
  158.     74.EB            ; debug reports the 74 here, you enter EB
  159. e cs:127
  160.     E8.90 D2.90 05.90    ; you enter the 90's followed by a space.
  161.                 ; If you get a D1 instead of D2 skip to
  162.                 ; the next page for the second version 2.03
  163. g 127
  164. a 186
  165.     jmp 1C6
  166.     <CR>            ; this second CR gets you out of the assembler
  167. a 22C
  168.     jmp 266
  169.     <CR>
  170. a 420
  171.     mov ax,22
  172.     <CR>
  173. e cs:430
  174.     01.89            ; debug reports the 01, you enter 89
  175. a 4CF
  176.     mov bl,7C
  177.     <CR>
  178. g 4E0
  179. g 282
  180. t
  181. g 24D
  182. t
  183. g 59F                ; wait while reading VDF & FAT
  184. g=5AA 5BA
  185. g=5C2 9D3            ; CLIPPER.EXE has been decrypted
  186.  
  187. d cs:1E0 L8            ; just for grins, here's the password
  188.            '44250A15'
  189.  
  190.           ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  191.            ****  THE VALUES HERE ARE FOR CLIPPER 1.00 ONLY    ****
  192.  
  193. rBX <CR>
  194. :1                ; set BX to 1 for CLIPPER
  195. rCX <CR>
  196. :9800                ; set CX to 9800 for CLIPPER
  197.  
  198.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  199.  
  200. nCLIPPER.bin            ; name of file to write to
  201. w XXXX:100            ; where XXXX is the value of DS that
  202.                 ;   you wrote down at the beginning.
  203. q                ; quit debug
  204.  
  205.      Last, unhide and delete the three root files CML0203.HCL, VDF0203.VDW,
  206. and CLIPPER.L23.  Delete CLIPPER.COM and rename CLIPPER.BIN to CLIPPER.EXE.
  207. This is the real CLIPPER program without any SoftGuard code or encryption.
  208. We could not write it out with the .EXE extension because DEBUG cannot write
  209. .EXE files.  Every protected program I have seen has the .EXE extention, but
  210. it is possible to use Softguard to encrypt .COM files too.  See the table
  211. above for the proper extension to put on the decrypted file.
  212.  
  213.  
  214.      There is another version of the Softguard system, ALSO labeled 2.03,
  215. but which differs by one byte in part of the CML file and 7 bytes in
  216. another.  If you start to apply the above patches and find some of the
  217. bytes do not match, try the following instructions:
  218.  
  219. debug CLIPPER.com        ; name of file that runs the product
  220. r <CR>                ; dump debug's registers
  221.  
  222.       ****    WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  223.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  224.  
  225. g 4D7                ; now we can trace CML
  226. t
  227. g 1B5
  228. t
  229. e cs:A2
  230.     74.EB            ; debug reports the 74 here, you enter EB
  231. e cs:127            ; HERE START THE 1 BYTE DIFFERENCES
  232.     E8.90 D1.90 05.90    ; you enter the 90's followed by a space.
  233. g 127
  234. a 185
  235.     jmp 1C5
  236.     <CR>            ; this second CR gets you out of the assembler
  237. a 22B
  238.     jmp 265
  239.     <CR>
  240. a 41F
  241.     mov ax,22
  242.     <CR>
  243. e cs:42F
  244.     01.89            ; debug reports the 01, you enter 89
  245. a 4CE
  246.     mov bl,7A
  247.     <CR>
  248. g 4DF
  249. g 281
  250. t
  251. g 24D
  252. t                ; HERE ARE THE 7 BYTE DIFFERENCES
  253. g 5A6                ; wait while reading VDF & FAT
  254. g=5B1 5C1
  255. g=5C9 9DA            ; CLIPPER.EXE has been decrypted
  256.  
  257. d cs:1E7 L8            ; just for grins, here's the password
  258.            'SUMMER85'
  259.  
  260.           ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  261.          ****  THE VALUES HERE ARE FOR CLIPPER SUMMER 85 ONLY  ****
  262.  
  263. rBX <CR>
  264. :1                ; set BX to 1 for CLIPPER
  265. rCX <CR>
  266. :9800                ; set CX to 9800 for CLIPPER
  267.  
  268.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  269.  
  270. nCLIPPER.bin            ; name of file to write to
  271. w XXXX:100            ; where XXXX is the value of DS that
  272.                 ;   you wrote down at the beginning.
  273. q                ; quit debug
  274.  
  275. REN CLIPPER.BIN CLIPPER.EXE
  276.                       The Lone Victor - 9/20/85
  277.  
  278.  
  279. SOFT203A.UNP        Breaking Softguard version 2.03A
  280. version 1                        by The Lone Victor
  281.  
  282.      There is a THIRD version of the Softguard system, labeled 2.03A,
  283. which is used by Lotus for 123 release 2.
  284.  
  285.      First, using your valid, original 123 diskette, install it on a
  286. fixed disk.  You cannot use this text to unprotect the floppy directly!
  287. Softguard hides three files in your fixed disk root directory: CML0203A.HCL,
  288. VDF0203A.VDW, and 123.L2C.  It also copies 123.COM into your chosen 123
  289. directory.  123.L2C is the real 123 loader, encrypted (it loades the 123.CMP
  290. file). The extension of this file does not matter.  It is really an
  291. encrypted .EXE file.
  292.  
  293.      We can now run 123.COM using DEBUG, trace just up to the point
  294. where it has decrypted 123.EXE, then write that file out.
  295.  
  296.       ****    USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  297.        ****  E.G. USE FW.COM INSTEAD OF 123.COM FOR FRAMEWORK  ****
  298.  
  299. debug 123.com            ; name of file that runs the product
  300. r <CR>                ; dump debug's registers
  301.  
  302.       ****    WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  303.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  304.  
  305. g 4FA                ; now we can trace CML
  306. t                ; this step changes segments into CML
  307. g 1B5
  308. t                ; change segments
  309. a 7D
  310.     mov ax,cs        ; assemble new instruction here over xor ax,ax
  311. e cs:E9             ; NOP out a mov ds,cx instruction
  312.     8E.90 D9.90        ; when debug reports 8E. you enter 90 <space>
  313.                 ; when debug reports D9. you enter 90 <CR>
  314. e cs:F5             ; change a jz instruction into a jmp
  315.     74.EB            ; debug reports the 74 here, you enter EB
  316. e cs:107
  317.     8E.90 D8.90        ; NOP out a mov ds,ax
  318. e cs:119
  319.     8E.90 D9.90        ; NOP out a mov ds,cx
  320. e cs:1AA
  321.     CC.90            ; NOP out an int 3
  322. g1AA                ; go to this address
  323. e cs:1E6
  324.     CC.90            ; NOP out an int 3
  325. e cs:200
  326.     E8.90 FF.90 03.90    ; NOP out a call 602
  327. e cs:269
  328.     26.2E            ; change an es: to cs:
  329. e cs:26E            ; change order of some pop instructions
  330.     1F.5A 5A.59 5F.5B 5B.5F 5E.5E 59.1F
  331. e cs:1B6
  332.     8E.90 DB.90        ; NOP out a mov ds.bx
  333. e cs:1DD
  334.     74.EB            ; change a jz to a jmp
  335. a 44C
  336.     jmp 4BF         ; jump to some code we need
  337. a 53C
  338.     jmp 455         ; jump back into main line code
  339. a 4E1
  340.     mov bl,10        ; provide correct checksum value
  341. e cs:500
  342.     FE.90 C7.90        ; NOP out an inc bh
  343. e cs:52B
  344.     8E.90 D9.90        ; NOP out a mov ds,cx
  345. g 1E6
  346. t                ; trace through two passes
  347. g 1E6
  348. g 290
  349. t                ; change segments
  350. g 24D
  351. t                ; change segments
  352. e cs:728
  353.     8C.90 1F.90        ; NOP out a mov [bx],ds
  354. e cs:431
  355.     89.90 07.90        ; NOP out a mov [bx],ds
  356. e cs:5BD
  357.     75.90 03.90        ; NOP out a jnz 5C2
  358. e cs:5F0
  359.     89.90 17.90        ; NOP out a mov [bx],dx
  360. e cs:5D8
  361.     74.EB            ; change a jz to jmp
  362. g A41
  363. g AFA                ; 123.EXE has been decrypted
  364.  
  365. d cs:1F1 L8            ; just for grins, here's the password
  366.            'LOTUSKEY'
  367. e XXXX:100            ; where XXXX is the value of DS that
  368.                 ;   you wrote down at the beginning.
  369.     3B.4D 2E.5A        ; programs other than 123 rel 2 may
  370.                 ; have some numbers here other than 3B 2E
  371.  
  372.           ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  373.          ****  THE VALUES HERE ARE FOR 123 2.00 ONLY  ****
  374.  
  375. rBX <CR>
  376. :0                ; set BX to 0 for 123
  377. rCX <CR>
  378. :1C00                ; set CX to 1C00 for 123
  379.  
  380.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  381.  
  382. n123.bin            ; name of file to write to
  383. w XXXX:100            ; again XXXX is the original DS value
  384. q                ; quit debug
  385.  
  386.      Following the 123 instructions, UNINSTALL 123.  You can now
  387. put away your original 123 diskette.  We are done with it.  Delete
  388. 123.COM and rename 123.BIN to 123.EXE.  This is the unprotected 123
  389. loader which runs the 123.CMP program. We could not write it
  390. out with the .EXE extension because DEBUG cannot write .EXE files.
  391.  
  392.  
  393. ns:
  394.  
  395. debug CLIPPER.com        ; name of file that runs the product
  396. r <CR>                ; dump debug's registers
  397.  
  398.       ****    WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  399.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  400.  
  401. g 4D7                ; now we can trace CML
  402. t
  403. g 1B5
  404. t
  405. e cs:A2
  406.     74.EB            ; debug reports the 74 here, you enter EB
  407. e cs:127            ; HERE START THE 1 BYTE DIFFERENCES
  408.     E8.90 D1.90 05.90    ; you enter the 90's followed by a space.
  409. g 127
  410. a 185
  411.     jmp 1C5
  412.     <CR>            ; this second CR gets you out of the assembler
  413. a 22B
  414.     jmp 265
  415.     <CR>
  416. a 41F
  417.     mov ax,22
  418.     <CR>
  419. e cs:42F
  420.     01.89            ; debug reports the 01, you enter 89
  421. a 4CE
  422.     mov bl,7A
  423.     <CR>
  424. g 4DF
  425. g 281
  426. t
  427. g 24D
  428. t                ; HERE ARE THE 7 BYTE DIFFERENCES
  429. g 5A6                ; wait while reading VDF & FAT
  430. g=5B1 5C1
  431. g=5C9 9DA            ; CLIPPER.EXE has been decrypted
  432.  
  433. d cs:1E7 L8            ; just for grins, here's the password
  434.            'SUMMER85'